https://leetcode.cn/problems/add-two-numbers/description/
//class Solution {
//public:
//    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
//        if (!l1 && !l2) return nullptr;
//        if (!l1) return l2;
//        if (!l2) return l1;
//
//        int a = l1->val + l2->val;
//        ListNode* newnode = new ListNode(a % 10);
//        newnode->next = addTwoNumbers(l1->next, l2->next);
//        if (a >= 10)
//        {
//            newnode->next = addTwoNumbers(newnode->next, new ListNode(1));
//        }
//        return newnode;
//    }
//};


https://leetcode.cn/problems/SLwz0R/description/
//class Solution {
//public:
//    ListNode* removeNthFromEnd(ListNode* head, int n)
//    {
//        if (!head) return nullptr;
//        ListNode* fast = head;
//        ListNode* slow = head;
//        while (n--)
//        {
//            fast = fast->next;
//        }
//        if (!fast) return head->next;
//        while (fast->next)
//        {
//            slow = slow->next;
//            fast = fast->next;
//        }
//
//
//        ListNode* next = slow->next->next;
//        //delete slow->next;
//        slow->next = next;
//        return head;
//
//    }
//};


https://leetcode.cn/problems/linked-list-cycle-ii/description/
//class Solution {
//public:
//    ListNode* detectCycle(ListNode* head)
//    {
//        if (!head || !head->next) return nullptr;
//        ListNode* fast = head, * slow = head;
//        ListNode* meet = nullptr;
//        while (fast && fast->next)
//        {
//            fast = fast->next->next;
//            slow = slow->next;
//            if (fast == slow) {
//                break;
//            }
//        }
//
//        fast = head;
//        while (fast && slow)
//        {
//            if (fast == slow)
//            {
//                return slow;
//            }
//            fast = fast->next;
//            slow = slow->next;
//        }
//        return nullptr;
//
//    }
//};


https://leetcode.cn/problems/linked-list-cycle/description/
//class Solution {
//public:
//    bool hasCycle(ListNode* head)
//    {
//        if (!head) return false;
//        ListNode* fast = head;
//        ListNode* last = head;
//
//        while (fast && fast->next)
//        {
//            fast = fast->next->next;
//            last = last->next;
//            if (fast == last) return true;
//        }
//        return false;
//
//    }
//};